"""
数字的五次幂

令人惊讶的是，只有三个数可以写成它们各位数字的四次幂之和：
    1634 = 1^4 + 6^4 + 3^4 + 4^4
    8208 = 8^4 + 2^4 + 0^4 + 8^4
    9474 = 9^4 + 4^4 + 7^4 + 4^4
由于1 = 1^4不是一个和的形式，因此这里没列出。这些数的和是1634 + 8208 + 9474 = 19316。
  找出所有可以写成它们各位数字的五次幂之和的数，并求这些数的和。
"""

def power_five(n):
    s=str(n)
    result=0
    for j in s:
        result += int(j)**5
    if(result==n):
        return True

sum_num=0
a=[]
for i in range(2,9**6):
    if power_five(i):
        a.append(i)
        sum_num+=i
print(a,sum_num)




# def an_fan(number):
#     an_fan=[]
#     for i in range(len(str(number))):
#         an_fan.append(str(number)[i])
#     if sum(int(i)**5 for i in an_fan)==number:
#         return True
# fanlist = [i for i in range(2,9**6) if an_fan(i)]
# print(fanlist)
# print(sum(fanlist))
# 答案：[4150, 4151, 54748, 92727, 93084, 194979]，和为443839


